home *** CD-ROM | disk | FTP | other *** search
Text File | 1980-02-04 | 26.0 KB | 1,254 lines |
- Machine 68020
-
- ;;; " Includes"
- Incdir "!Includes:"
- Include "StdLibInc.i"
- Include "StdHardInc.i"
- Include "Screens.i"
- Include "Loader.i"
- Include "Support.i"
-
- Incdir "!intro:"
- Include "introMain.i"
- ;;;
- ;;; " Defines"
- IntroMain_ID Equ 42
- FadeBuffSize Equ 8*1024
- ;;;
-
- xref Texture
-
- xref _InitFade
- xref _DoFade
-
- xref _InitSinus
- xref _InitSinus2
-
- ***********************************************************
-
- Section code,CODE
-
- ;;; " Init (IconStartup & _InitDemo"
- Init: Bsr _Startup ;Iconstartup
-
- Bsr _InitDemo
- Tst.l d0
- Bne Exit
-
- Bsr _InitSinus
- ;;;
- ;;; " PreCalcing"
- Bsr Fastest_Init
- Tst.l d0
- Bne RunDown
-
- Bsr DotTunnel_Init
- Tst.l d0
- Bne RunDown
-
- Bsr MiniWall_Init
- Tst.l d0
- Bne RunDown
- ;;;
- ;;; " Play Music"
- Bsr _PlayMusic
- Tst.l d0
- Bne Uninit
-
- Move.w #0,P61_Play
- ;;;
-
- Bsr Intro_Init
- Tst.l d0
- Bne RunDown
-
- Bsr Intro_Main
- Tst.l d0
- Bne RunDown
-
- Bsr Intro_Remove
-
- ;Move.w #1,P61_Play
-
- ;----------------------------
-
- Loop: Btst #2,$dff016
- Beq RunDown
- Cmp.w #6,P61_Pos
- Bne Loop
-
- Bsr Atomic_Init
- Tst.l d0
- Bne RunDown
-
- Bsr Fastest
- Tst.l d0
- Bne RunDown
-
- Bsr Atomic_Main
- Tst.l d0
- Bne RunDown
-
- Bsr MiniWall
- Tst.l d0
- Bne RunDown
-
- Bsr Write2
- Tst.l d0
- Bne RunDown
-
- Bsr DotTunnel
- Tst.l d0
- Bne RunDown
-
- Loop2: Btst #2,$dff016
- Beq RunDown
- Cmp.w #20,P61_Pos
- Bne Loop2
-
- Bsr Write3
- Tst.l d0
- Bne RunDown
-
- ;----------------------------
-
- ;;; " RunDown"
- RunDown: Bsr _StopMusic
- Bsr _FreeAll
- Uninit: Bsr _UninitDemo
- Exit: Bsr _Closedown ;Iconstartup
- ;;;
-
- Moveq #0,d0
- Rts
-
- ;;; "Effect: Fastest"
-
- Fastest: Move.l #256*256,Fastest_Angle2
- Move.l #1000*256,Fastest_Zoom2
- Move.l #64*256,Fastest_XOff
- Move.l #128*256,Fastest_YOff
-
- Bsr Fastest_Show
-
- Lea Fastest_Add,a0
- Bsr _AddVBLInt
- Move.l d0,Fastest_Int
- Beq RunDown
-
- .lop Bsr _Sync
-
- Bsr Fastest_Main
-
- Cmp.w #10,P61_Pos
- Beq .done
-
- Btst #2,$dff016
- Beq .break
-
- Tst.l Fastest_Exit
- Beq .lop
-
- .done Move.l Fastest_Int,d0
- Bsr _RemVBLInt
-
- Bsr Fastest_Remove
-
- Moveq #0,d0
- Rts
-
- .break Moveq #1,d0
- Rts
- ;;;
- ;;; "Fastest_Add"
- Fastest_Add: Lea Fastest_Story,a0
- Add.l Fastest_Curr,a0
-
- Tst.l Fastest_Time
- Bne .exit
-
- .newentry Move.b (a0)+,d0
- Extb.l d0
- Cmp.l #-1,d0
- Bne .noend
- Move.l #1,Fastest_Exit
- Bra .exit
- .noend Move.l d0,Fastest_Time
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,Fastest_AngleAdd2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,Fastest_ZoomAdd2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,Fastest_XOffAdd2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,Fastest_YOffAdd2
-
- Add.l #5,Fastest_Curr
- .exit Subq.l #1,Fastest_Time
-
- ;------------------------------
-
- Move.l Fastest_AngleAdd,d0
- Add.l d0,Fastest_Angle2
- Move.l Fastest_Angle2,d0
- Asr.l #8,d0
- Move.l d0,Fastest_Angle
- And.l #1023,Fastest_Angle
-
- Move.l Fastest_AngleAdd2,d0
- Add.l d0,Fastest_AngleAdd
-
-
- Move.l Fastest_ZoomAdd,d0
- Add.l d0,Fastest_Zoom2
- Move.l Fastest_Zoom2,d0
- Asr.l #8,d0
- Move.w d0,Fastest_Zoom
-
- Move.l Fastest_ZoomAdd2,d0
- Add.l d0,Fastest_ZoomAdd
-
-
- Move.l Fastest_XOffAdd,d0
- Add.l d0,Fastest_XOff
-
- Move.l Fastest_XOffAdd2,d0
- Add.l d0,Fastest_XOffAdd
-
-
- Move.l Fastest_YOffAdd,d0
- Add.l d0,Fastest_YOff
-
- Move.l Fastest_YOffAdd2,d0
- Add.l d0,Fastest_YOffAdd
-
- Rts
- ;;;
- ;;; "Fastest Story"
- Fastest_Story:
- Dc.b 100,1,-3,0,0
- Dc.b 100,1,-3,0,0
- Dc.b 100,1,0,2,0
- Dc.b 100,0,3,3,0
- Dc.b 100,0,3,4,0
- Dc.b 100,0,0,4,0
- Dc.b 100,0,0,5,1
- Dc.b 70,0,3,5,1
- Dc.b 100,20,0,10,10
- Dc.b 100,-5,6,-10,10
- Dc.b 100,-5,6,-10,10
- Dc.b 100,-5,-45,-5,-5
- Dc.b 100,-10,65,0,0
- Dc.b 70,-30,-55,0,0
- Dc.b 75,20,65,0,0
- Dc.b 70,-10,-45,0,0
- Dc.b 75,-50,25,0,0
- Dc.b -1
- Even
- ;;;;
- ;;; "Fastest Vars"
- Fastest_Exit: Dc.l 0
- Fastest_Curr: Dc.l 0
- Fastest_Time: Dc.l 0
-
- Fastest_AngleAdd: Dc.l 16
- Fastest_AngleAdd2: Dc.l 0
- Fastest_Angle2: Dc.l 0
-
- Fastest_ZoomAdd: Dc.l 0
- Fastest_ZoomAdd2: Dc.l 0
- Fastest_Zoom2: Dc.l 0
-
- Fastest_XOffAdd: Dc.l 0
- Fastest_XOffAdd2: Dc.l 0
-
- Fastest_YOffAdd: Dc.l 0
- Fastest_YOffAdd2: Dc.l 0
-
- Fastest_Int: Dc.l 0
- ;;;
-
- ;;; "Effect: DotTunnel"
- DotTunnel: Move.w #4,DotTunnel_Speed
- Move.l #0*256,DotTunnel_XS2
- Move.l #0*256,DotTunnel_YS2
-
- Bsr DotTunnel_Show
-
- .lop Bsr _Sync
-
- Btst #2,$dff016
- Beq .break
-
- Bsr DotTunnel_Add
- Bsr DotTunnel_Counter
- Bsr DotTunnel_Main
-
- Cmp.w #20,P61_Pos
- Beq .done
-
- Tst.l DotTunnel_Exit
- Beq .lop
-
- .done Bsr DotTunnel_Remove
-
- Moveq #0,d0
- Rts
-
- .break Moveq #1,d0
- Rts
- ;;;
- ;;; "DotTunnel_Add"
- DotTunnel_Add: Lea DotTunnel_Story,a0
- Add.l DotTunnel_Curr,a0
-
- Tst.l DotTunnel_Time
- Bne .exit
-
- .newentry Move.b (a0)+,d0
- Extb.l d0
- Cmp.l #-1,d0
- Bne .noend
- Move.l #1,DotTunnel_Exit
- Bra .exit
-
- .noend Ext.w d0
- Move.w d0,DotTunnel_Speed
-
- Move.l #16,DotTunnel_Time
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,DotTunnel_XS2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,DotTunnel_YS2
-
- Add.l #3,DotTunnel_Curr
-
- ;-----------------------------
-
- .exit Move.w DotTunnel_Old,d0
- Move.w P61_CRow,d1
- Cmp.w d0,d1
- Beq .donesync
- Subq.l #1,DotTunnel_Time
- .donesync Move.w d1,DotTunnel_Old
-
- ;------------------------------
-
- Move.l DotTunnel_XSAdd,d0
- Add.l d0,DotTunnel_XS2
- Move.l DotTunnel_XS2,d0
- ;Asr.l #8,d0
- Move.w d0,DotTunnel_XS
-
- Move.l DotTunnel_XSAdd2,d0
- Add.l d0,DotTunnel_XSAdd
-
-
- Move.l DotTunnel_YSAdd,d0
- Add.l d0,DotTunnel_YS2
- Move.l DotTunnel_YS2,d0
- ;Asr.l #8,d0
- Move.w d0,DotTunnel_YS
-
- Move.l DotTunnel_YSAdd2,d0
- Add.l d0,DotTunnel_YSAdd
-
- Rts
- ;;;
- ;;; "DotTunnel Story"
- DotTunnel_Story: Dc.b 4,37,3
- Dc.b 4,21,37
- Dc.b 4,13,36
- Dc.b 4,24,5
- Dc.b 4,17,26
- Dc.b 4,13,26
- Dc.b 4,24,10
- Dc.b 4,17,26
- Dc.b 4,23,36
- Dc.b 4,34,30
- Dc.b 4,27,16
- Dc.b 4,27,16
- Dc.b 4,34,10
- Dc.b 4,17,6
- Dc.b 4,13,26
- Dc.b 4,24,34
- Dc.b 4,27,16
- Dc.b 4,27,36
- Dc.b 4,14,20
- Dc.b 4,27,16
- Dc.b 4,20,26
- Dc.b 4,34,35
- Dc.b 4,16,16
- Dc.b 4,33,36
-
- Dc.b -1
- Even
- ;;;;
- ;;; "DotTunnel Vars"
- DotTunnel_Fade: Dc.l 0
- DotTunnel_Done: Dc.l 0
-
- DotTunnel_Exit: Dc.l 0
- DotTunnel_Curr: Dc.l 0
- DotTunnel_Time: Dc.l 0
-
- DotTunnel_XSAdd: Dc.l 0
- DotTunnel_XSAdd2: Dc.l 0
- DotTunnel_XS2: Dc.l 0
-
- DotTunnel_YSAdd: Dc.l 0
- DotTunnel_YSAdd2: Dc.l 0
- DotTunnel_YS2: Dc.l 0
-
- DotTunnel_Old: Dc.w 0
- ;;;
-
- ;;; "Effect: MiniWall"
-
- MiniWall: Move.l #2*256,MiniWall_CoAdd
- Move.l #3*256,MiniWall_Co2Add
- Move.l #5*256,MiniWall_Co3Add
-
- Bsr MiniWall_Show
-
- .lop Bsr _Sync
-
- Btst #2,$dff016
- Beq .break
-
- Bsr MiniWall_Add
- Bsr MiniWall_Counter
- Bsr MiniWall_Main
-
- Cmp.w #14,P61_Pos
- Beq .done
-
- Tst.l MiniWall_Exit
- Beq .lop
-
- .done Bsr MiniWall_Remove
- Moveq #0,d0
- Rts
-
- .break Bsr MiniWall_Remove
- Moveq #1,d0
- Rts
-
- ;;;
- ;;; "MiniWall_Add"
- MiniWall_Add: Lea MiniWall_Story,a0
- Add.l MiniWall_Curr,a0
-
- Tst.l MiniWall_Time
- Bne .exit
-
- .newentry Move.b (a0)+,d0
- Extb.l d0
- Cmp.l #-1,d0
- Bne .noend
- Move.l #1,MiniWall_Exit
- Bra .exit
- .noend Move.l d0,MiniWall_Time
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,MiniWall_CoAdd2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,MiniWall_Co2Add2
-
- Move.b (a0)+,d0
- Extb.l d0
- Move.l d0,MiniWall_Co3Add2
-
- Add.l #4,MiniWall_Curr
- .exit Subq.l #1,MiniWall_Time
-
- ;------------------------------
-
- Move.l MiniWall_CoAdd,d0
- Add.l d0,MiniWall_Co_2
- Move.l MiniWall_Co_2,d0
- Asr.l #8,d0
- Move.l d0,MiniWall_Co
- And.l #1023,MiniWall_Co
-
- Move.l MiniWall_CoAdd2,d0
- Add.l d0,MiniWall_CoAdd
-
-
- Move.l MiniWall_Co2Add,d0
- Add.l d0,MiniWall_Co2_2
- Move.l MiniWall_Co2_2,d0
- Asr.l #8,d0
- Move.l d0,MiniWall_Co2
- And.l #1023,MiniWall_Co2
-
- Move.l MiniWall_Co2Add2,d0
- Add.l d0,MiniWall_Co2Add
-
-
- Move.l MiniWall_Co3Add,d0
- Add.l d0,MiniWall_Co3_2
- Move.l MiniWall_Co3_2,d0
- Asr.l #8,d0
- Move.l d0,MiniWall_Co3
- And.l #1023,MiniWall_Co3
-
- Move.l MiniWall_Co3Add2,d0
- Add.l d0,MiniWall_Co3Add
-
- Rts
- ;;;
- ;;; "MiniWall Story"
- MiniWall_Story:
- Dc.b 64,0,0,4
- Dc.b 64,0,-4,0
- Dc.b 64,0,0,0
- Dc.b 64,-8,0,0
- Dc.b 64,0,8,2
- Dc.b 64,2,0,2
- Dc.b 64,0,-8,0
- Dc.b 64,-4,0,8
- Dc.b 64,0,0,2
- Dc.b 64,8,-8,0
- Dc.b 64,0,0,-4
- Dc.b 64,-16,0,2
- Dc.b 64,0,-8,0
- Dc.b 64,0,0,-4
- Dc.b 64,0,8,2
- Dc.b 64,2,0,2
- Dc.b 48,0,-4,0
- Dc.b 32,-4,0,8
- Dc.b 32,0,0,2
- Dc.b 32,16,-8,0
- ;Dc.b 32,0,0,-4
-
- Dc.b -1
- Even
- ;;;;
- ;;; "MiniWall Vars"
- MiniWall_Exit: Dc.l 0
- MiniWall_Curr: Dc.l 0
- MiniWall_Time: Dc.l 0
-
- MiniWall_CoAdd: Dc.l 0
- MiniWall_CoAdd2: Dc.l 0
- MiniWall_Co_2: Dc.l 0
-
- MiniWall_Co2Add: Dc.l 0
- MiniWall_Co2Add2: Dc.l 0
- MiniWall_Co2_2: Dc.l 0
-
- MiniWall_Co3Add: Dc.l 0
- MiniWall_Co3Add2: Dc.l 0
- MiniWall_Co3_2: Dc.l 0
- ;;;
-
- *********************************************************
-
- Atomic_Init:
- ;;; "Open Screen"
- A_AllocPic:
- Move.l #40*256*4,d0
- Move.l #IntroMain_ID,d1
- Bsr _AllocChip
- Move.l d0,A_PicPtr
- Beq A_InitError
-
- Move.l #40*256*2,d0
- Move.l #IntroMain_ID,d1
- Bsr _AllocChip
- Move.l d0,A_ScreenPtr
- Beq A_InitError
-
- ;------------------------
-
- Lea A_BplPtr,a0
- Move.l A_ScreenPtr,d1
- Moveq #2-1,d2
- Move.l #40*256,d0
- Bsr _SetPtrs
-
- Lea A_BplPtr,a0
- Lea 16(a0),a0
- Move.l A_PicPtr,d1
- Moveq #4-1,d2
- Move.l #40*256,d0
- Bsr _SetPtrs
-
- Lea A_SprPtr,a0
- Move.l #SpriteDummy,d1
- Moveq #7,d2
- Moveq #0,d0
- Bsr _SetPtrs
- ;;;
- ;;; "Alloc FadeBuffer"
- Move.l #8*1024,d0
- Move.l #IntroMain_ID,d1
- Bsr _AllocPublic
- Move.l d0,A_FadeBuffPtr
- Beq A_InitError
- ;;;
- ;;; "Init Pic"
-
- A_InitPic: Lea Texture,a3
- Move.l A_PicPtr,a0
- Add.l #4,a0
- Move.l #%10000,d5
- Move.l #4,a4
-
- Move.l #4-1,d4
- .plane
- Move.l a3,a2
-
- Move.l #128-1,d7
- .ylop
- Move.l a2,a1
- Addq.l #1,a2
-
- Move.l #32-1,d6
- .xlop Moveq #0,d0
-
- Movem.l d6,-(a7)
- Move.l a4,d6
-
- Move.b (a1),d0
- Add.l #256/2,a1
- And.w d5,d0
- Lsr.l d6,d0
- Move.b (a1),d1
- Add.l #256/2,a1
- And.w d5,d1
- Lsr.l d6,d1
- Move.b (a1),d2
- Add.l #256/2,a1
- And.w d5,d2
- Lsr.l d6,d2
- Move.b (a1),d3
- Add.l #256/2,a1
- And.w d5,d3
- Lsr.l d6,d3
-
- Lsl.l #2,d0
- Or.b d1,d0
- Lsl.l #2,d0
- Or.b d2,d0
- Lsl.l #2,d0
- Or.b d3,d0
-
- Move.b d0,d1
- Lsl.l #1,d1
- Or.b d1,d0
-
- Move.b d0,(a0)+
-
- Movem.l (a7)+,d6
-
- Dbra d6,.xlop
-
- Add.l #8+40,a0
-
- Dbra d7,.ylop
-
- Lsl.l #1,d5
- Add.l #1,a4
-
- Dbra d4,.plane
- ;;;
- ;;; "Rts"
- Moveq #0,d0
- Rts
- A_InitError:
- Move.l #IntroMain_ID,d0
- Bsr _FreeMany
- Moveq #1,d0
- Rts
- ;;;
-
- Atomic_Main:
- ;;; "Install Screen"
- Move.l #64,d0
- Move.l #64,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
- ;;;
- ;;; "Fade Pic"
- Bsr _Sync
-
- Lea A_CList,a0
- Bsr _InstallCopper
-
- .fade Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
-
- Btst #2,$dff016
- Beq A_Break
-
- Tst.l d0
- Beq .fade
- ;;;
- ;;; "It is.."
- A_XPos1 Equ 38
- A_YPos1 Equ 17
-
- A_XPos2 Equ 85
- A_YPos2 Equ 207
-
- A_First: Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #32,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne A_Break
-
- Lea A_Word1a,a0
- Move.l #A_XPos1,d0
- Move.l #A_YPos1,d1
- Bsr Wr1_Write
-
- Lea A_Word1b,a0
- Move.l #A_XPos1+35,d0
- Move.l #A_YPos1,d1
- Bsr Wr1_Write
-
- Lea A_Word1c,a0
- Move.l #A_XPos1+70,d0
- Move.l #A_YPos1,d1
- Bsr Wr1_Write
-
- Lea A_Word1d,a0
- Move.l #A_XPos1+148,d0
- Move.l #A_YPos1,d1
- Bsr Wr1_Write
-
- .fade Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
-
- Btst #2,$dff016
- Beq A_Break
-
- Tst.l d0
- Beq .fade
-
- ;-------------------------
- A_Second:
- Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #0,d0
- Bsr P61_WaitCRow2
- Tst.l d0
- Bne A_Break
-
- Lea A_Word2a,a0
- Move.l #A_XPos2,d0
- Move.l #A_YPos2,d1
- Bsr Wr1_Write
-
- Lea A_Word2b,a0
- Move.l #A_XPos2+61,d0
- Move.l #A_YPos2,d1
- Bsr Wr1_Write
-
- .fade Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
-
- Btst #2,$dff016
- Beq A_Break
-
- Tst.l d0
- Beq .fade
- ;;;
- ;;; "Fade Up"
- A_FadeUp: Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal1,a0
- Lea A_Pal2,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #32,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne A_Break
-
- Move.w #0,d0
- Bsr P61_WaitCRow2
- Tst.l d0
- Bne A_Break
-
- .fade Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
-
- Btst #2,$dff016
- Beq A_Break
-
- Tst.l d0
- Beq .fade
- ;;;
- Moveq #0,d0
- Rts
- A_Break:
- Moveq #1,d0
- Rts
-
- ;;; "Atomic Data"
- A_PicPtr: Dc.l 0
- A_ScreenPtr: Dc.l 0
- A_FadeBuffPtr: Dc.l 0
-
- A_Pal1: Dc.l $000000,$777777,$bbbbbb,$ffffff
- Dc.l $000011,$777777,$bbbbbb,$ffffff
- Dc.l $000022,$777777,$bbbbbb,$ffffff
- Dc.l $111133,$777777,$bbbbbb,$ffffff
-
- Dc.l $222244,$777777,$bbbbbb,$ffffff
- Dc.l $333355,$777777,$bbbbbb,$ffffff
- Dc.l $444466,$777777,$bbbbbb,$ffffff
- Dc.l $555577,$777777,$bbbbbb,$ffffff
-
- Dc.l $666688,$777777,$bbbbbb,$ffffff
- Dc.l $777799,$777777,$bbbbbb,$ffffff
- Dc.l $8888aa,$777777,$bbbbbb,$ffffff
- Dc.l $9999bb,$777777,$bbbbbb,$ffffff
-
- Dc.l $aaaacc,$777777,$bbbbbb,$ffffff
- Dc.l $bbbbdd,$777777,$bbbbbb,$ffffff
- Dc.l $ccccee,$777777,$bbbbbb,$ffffff
- Dc.l $ddddff,$777777,$bbbbbb,$ffffff
-
- A_Pal2:
- REPT 16
- Dc.l $ffffff,$ffffff,$ffffff,$ffffff
- ENDR
-
- A_Pal3:
- REPT 16
- Dc.l 0,0,0,0
- ENDR
-
- A_Word1a: Dc.b I,T,END
- A_Word1b: Dc.b I,S,END
- A_Word1c: Dc.b Y,O,U,R,END
- A_Word1d: Dc.b F,U,T,U,R,E,END
-
- A_Word2a: Dc.b Y,O,U,END
- A_Word2b: Dc.b D,E,C,I,D,E,UTR,END
- ;;;
- ;;; "Wr1_Write"
- ********************************
- * IN: a0 - Pekare till ordet *
- * d0 - X pos *
- * d1 - Y pos *
- ********************************
- Wr1_Write: Movem.l d0-d4/a0,-(a7)
-
- Move.l a0,a1
- Move.l A_ScreenPtr,a0
- Move.l d1,d2
- Move.l d0,d1
- Move.l #320,d3
- Move.l #256,d4
- Bsr Writer_PutW
-
- Movem.l (a7)+,d0-d4/a0
- Rts
- ;;;
-
- *********************************************************
-
-
- Write2:
- ;;; "Install Screen"
- Move.l A_PicPtr,a0
- Move.l #40*256*4/16-1,d0
- .clrlop1 Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Dbra d0,.clrlop1
-
- Move.l A_ScreenPtr,a0
- Move.l #40*256*2/16-1,d0
- .clrlop2 Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Dbra d0,.clrlop2
-
- Move.l #64,d0
- Move.l #64,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
- ;;;
- ;;; "Fade Pic"
- Bsr _Sync
-
- Lea A_CList,a0
- Bsr _InstallCopper
-
- .fade Btst #2,$dff016
- Beq W2_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
- ;;;
- ;;; "God is.."
- A_XPos1_ Equ 73
- A_YPos1_ Equ 47
-
- A_XPos2_ Equ 50
- A_YPos2_ Equ 177
-
- A_First2: Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #32,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne W2_Break
-
- Lea W_Word1a,a0
- Move.l #A_XPos1_,d0
- Move.l #A_YPos1_,d1
- Bsr Wr1_Write
-
- Lea W_Word1b,a0
- Move.l #A_XPos1_+62,d0
- Move.l #A_YPos1_,d1
- Bsr Wr1_Write
-
- Lea W_Word1c,a0
- Move.l #A_XPos1_+98,d0
- Move.l #A_YPos1_,d1
- Bsr Wr1_Write
-
- .fade Btst #2,$dff016
- Beq W2_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
-
- ;-------------------------
- A_Second2:
- Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #0,d0
- Bsr P61_WaitCRow2
- Tst.l d0
- Bne W2_Break
-
- Lea W_Word2a,a0
- Move.l #A_XPos2_,d0
- Move.l #A_YPos2_,d1
- Bsr Wr1_Write
-
- Lea W_Word2b,a0
- Move.l #A_XPos2_+65,d0
- Move.l #A_YPos2_,d1
- Bsr Wr1_Write
-
- Lea W_Word2c,a0
- Move.l #A_XPos2_+154,d0
- Move.l #A_YPos2_,d1
- Bsr Wr1_Write
-
- .fade Btst #2,$dff016
- Beq W2_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
- ;;;
- ;;; "Fade Up"
- A_FadeUp2: Move.l #64,d0
- Move.l #8,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal1,a0
- Lea A_Pal2,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #32,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne W2_Break
-
- Move.w #0,d0
- Bsr P61_WaitCRow2
- Tst.l d0
- Bne W2_Break
-
- .fade Btst #2,$dff016
- Beq W2_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
- ;;;
- Moveq #0,d0
- Rts
-
- W2_Break: Moveq #1,d0
- Rts
-
- ;;; "Write2 Data"
- W_Word1a: Dc.b G,O,D,END
- W_Word1b: Dc.b I,S,END
- W_Word1c: Dc.b D,E,A,D,UTR,END
-
- W_Word2a: Dc.b H,O,W,END
- W_Word2b: Dc.b A,B,O,U,T,END
- W_Word2c: Dc.b Y,O,U,FRA,END
- ;;;
-
- Write3:
- ;;; "Clear Screen"
- Move.l A_PicPtr,a0
- Move.l #40*256*4/16-1,d0
- .clrlop1 Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Dbra d0,.clrlop1
-
- Move.l A_ScreenPtr,a0
- Move.l #40*256*2/16-1,d0
- .clrlop2 Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Clr.l (a0)+
- Dbra d0,.clrlop2
- ;;;
- ;;; "Init Colours"
- Lea Custom,a5
- Move.w #$0000,$106(a5)
- Move.w #$0000,$180(a5)
- Move.w #$0777,$182(a5)
- Move.w #$0bbb,$184(a5)
- Move.w #$0fff,$186(a5)
- ;;;
- ;;; "Show Screen"
- Lea A_CList,a0
- Bsr _InstallCopper
- ;;;
- ;;; "HardLine.."
- A_First3: Move.l #64,d0
- Move.l #4,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Lea W3_Word1,a0
- Move.l #100,d0
- Move.l #20,d1
- Bsr Wr1_Write
-
- .fade Btst #2,$dff016
- Beq W3_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
-
- ;-------------------------
- A_Second3:
- Move.l #64,d0
- Move.l #4,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #2,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne W3_Break
-
- Lea W3_Word2,a0
- Move.l #106,d0
- Move.l #110,d1
- Bsr Wr1_Write
-
- .fade Btst #2,$dff016
- Beq W3_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
-
- A_Third3: Move.l #64,d0
- Move.l #4,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal2,a0
- Lea A_Pal1,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.w #4,d0
- Bsr P61_WaitCRow
- Tst.l d0
- Bne W3_Break
-
- Lea W3_Word3,a0
- Move.l #100,d0
- Move.l #200,d1
- Bsr Wr1_Write
-
- .fade Btst #2,$dff016
- Beq W3_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
- ;;;
- ;;; "Fade Down"
- A_FadeUp3: Move.l #64,d0
- Move.l #128,d1
- Move.l #0,d2
- Move.l #0,d3
- Lea A_Pal1,a0
- Lea A_Pal3,a1
- Move.l A_FadeBuffPtr,a2
- Bsr _InitFade
-
- Move.l #170-1,d0
- .loop Bsr _Sync
- Dbra d0,.loop
-
- .fade Btst #2,$dff016
- Beq W3_Break
-
- Move.l A_FadeBuffPtr,a0
- Bsr _DoFade
- Bsr _Sync
- Tst.l d0
- Beq .fade
- ;;;
- Moveq #0,d0
- Rts
-
- W3_Break: Moveq #1,d0
- Rts
-
-
- ;;; "Write3 Data"
- W3_Word1: Dc.b H,A,R,D,L,I,N,E,END
- W3_Word2: Dc.b A,G,A,I,N,S,T,END
- W3_Word3: Dc.b H,A,R,D,L,I,N,E,END
- ;;;
-
- Section chipdata,DATA_C
- ;;; "Atomic CopperList"
- A_CList: Dc.w $008e,$2c81 ; DIWSTRT
- Dc.w $0090,$2bc1 ; DIWSTOP
- Dc.w $0092,$0038 ; DDFSTRT
- Dc.w $0094,$00d0 ; DDFSTOP
- Dc.w $0100,$6201 ; BPLCON0
- Dc.w $0102,$0000 ; BPLCON1
- Dc.w $0104,$0200 ; BPLCON2
- Dc.w $0108,-8 ; BPLMOD1
- Dc.w $010a,-8 ; BPLMOD2
- Dc.w $01fc,$0003 ; FETCHMODE
-
- A_BplPtr: Dc.w $00e0,$0000 ; BPL1PTH
- Dc.w $00e2,$0000 ; BPL1PTL
- Dc.w $00e4,$0000 ; BPL1PTL
- Dc.w $00e6,$0000 ; BPL1PTL
- Dc.w $00e8,$0000 ; BPL1PTL
- Dc.w $00ea,$0000 ; BPL1PTL
- Dc.w $00ec,$0000 ; BPL1PTL
- Dc.w $00ee,$0000 ; BPL1PTL
- Dc.w $00f0,$0000 ; BPL1PTL
- Dc.w $00f2,$0000 ; BPL1PTL
- Dc.w $00f4,$0000 ; BPL1PTL
- Dc.w $00f6,$0000 ; BPL1PTL
-
- A_SprPtr:
- A_SprNum Set $0120
- REPT 16
- Dc.w A_SprNum,$0000 ; SPRxPT
- A_SprNum Set A_SprNum+2
- ENDR
-
- Dc.w $ffff,$fffe ; End of list
- ;;;
-
-